/*
 * Licensed to the 南京汇海交通科技有限公司
 *
 * Copyright (c) 2025.
 * All rights reserved.
 *
 * 本软件属南京汇海交通科技有限公司所有，在未获得南京汇海交通科技有限公司正式授权情况下，任何企业和个人，不能获取、阅读、安装、传播本软件涉及的任何受知识产权保护的内容。
 */
package com.chframework.poi;

import java.io.Serializable;
import java.nio.charset.StandardCharsets;
import java.util.Comparator;

/**
 * 描述：对Excel的单元格坐标进行自然排序
 * 日期：2022-02-28
 * 作者：周孝兵
 */
public final class CoordinateComparator implements Comparator<String>, Serializable {
    @Override
    public int compare(String coordinate1, String coordinate2) {
        Long asciiCoordinate1 = getASCII(coordinate1);
        Long asciiCoordinate2 = getASCII(coordinate2);
        return asciiCoordinate1.compareTo(asciiCoordinate2);
    }

    Long getASCII(String coordinate1) {
        byte[] bytes1 = coordinate1.getBytes(StandardCharsets.US_ASCII);
        StringBuilder sb1 = new StringBuilder();
        for (byte b : bytes1) {
            sb1.append(b);
        }
        return Long.valueOf(sb1.toString());
    }
}
